const app = getApp()

Page({
  data: {
    userInfo: {},
    genderRange: ['未知', '男', '女']
  },

  onLoad() {
    this.setData({
      userInfo: app.globalData.userInfo || {}
    })
  },

  // 选择头像
  async chooseAvatar() {
    try {
      const { tempFilePaths } = await wx.chooseImage({
        count: 1,
        sizeType: ['compressed']
      })

      // 上传头像
      const cloudPath = `avatars/${app.globalData.openid}_${Date.now()}.jpg`
      const { fileID } = await wx.cloud.uploadFile({
        cloudPath,
        filePath: tempFilePaths[0]
      })

      this.setData({
        'userInfo.avatarUrl': fileID
      })
    } catch (error) {
      console.error('选择头像失败：', error)
    }
  },

  // 昵称输入
  onNickNameInput(e) {
    this.setData({
      'userInfo.nickName': e.detail.value
    })
  },

  // 性别选择
  onGenderChange(e) {
    this.setData({
      'userInfo.gender': parseInt(e.detail.value)
    })
  },

  // 保存用户信息
  async saveUserInfo() {
    const { userInfo } = this.data

    if (!userInfo.nickName) {
      wx.showToast({
        title: '请输入昵称',
        icon: 'none'
      })
      return
    }

    try {
      const db = wx.cloud.database()
      await db.collection('users')
        .where({
          _openid: app.globalData.openid
        })
        .update({
          data: {
            ...userInfo,
            updateTime: db.serverDate()
          }
        })

      app.globalData.userInfo = userInfo

      wx.showToast({
        title: '保存成功'
      })

      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    } catch (error) {
      console.error('保存用户信息失败：', error)
      wx.showToast({
        title: '保存失败',
        icon: 'none'
      })
    }
  }
}) 